home *** CD-ROM | disk | FTP | other *** search
-
- LINE TYPES
- ************
-
- This file is written by Brian McKimens (samneric@connected.com)
- dmspec13 is written by Matt Fell (matt.burnett@acebbs.com)
- and distributed by Hank Leukart (ap641@cleveland.freenet.edu)
- DEU 5.1 is written by Raphael Quinet (quinet@montefiore.ulg.ac.be)
- and Brendon J. Wyber (b.wyber@csc.canterbury.ac.nz)
-
-
- Following is a list of LINE TYPES available for wad editing.
- I hope this information will allow you to better design levels.
-
- I gathered this information from dmspec13 and from experiments with
- DEU 5.1 to determine the actual effects of the line types. I found numerous
- errors in the descriptions in DEU 5.1 and many omissions in the descriptions
- in dmspec13. I just started to figure out what 1 particular type did. In
- the course of experimenting, I was able to determine what other line types
- actually do and to fill-in a large part of the missing descriptions. Newly
- discovered line types are preceeded by an asterisk (*). I don't pretend
- that this is error-free, but in as many cases as possible, I tested those
- line types that I DID test under as many different conditions as needed to
- feel secure in the description. If you find errors, please e-mail me and
- be sure to include a GOOD description of the discrepency (hopefully, a
- zipped, binary wad containing NO MORE THAN NECESSARY to run and illustrate
- the condition!). There are still line types not defined, and they are listed
- at the end of this file. There are also sector types (2) not defined yet
- and some of these line types may behave differently when tagged to those
- type of sectors. Who knows?... A bottle of Murine to whoever figures out
- what these undefined sector and line types do!
-
- DEU 5.1 allows use of these new and corrected types to be inserted
- manually by entering a decimal number for the line type by hand. It allows
- you to insert a number up to 255, but the known line types at this time only
- range from 0-104. Dmspec13 refers to a line type of -1 that occurs in E2M7
- in one room. Since this doesn't "appear" to have a function in the room that
- uses it (on every major wall, I might add), I'm gonna consider it a bug for
- ID to squash when they get around to it. Like that Sargeant stuck between
- walls, and the Spectre stuck TO a wall, in E1M6. At least until someone
- come up with a purpose for it.
-
- LINE TYPE is a term that refers to an effect that can be triggered by
- an ACTION on the related linedef. The word "function" might better describe
- TYPE than "type" does. The DOOM engine calls certains functions when the
- linedefs are activated by shooting, crossing, or butting up next to them
- and hitting the spacebar. ID isn't likely to release their source code, but
- we can experiment and discover "what happens" when we set a linedef to a
- certain TYPE and then activate it. This is what dmspec13 contains - results
- of experiments performed on wads to see what happens. This file is just a
- continuation of the efforts of other people to unravel the "secrets" that the
- mighty DOOM engine hides...
-
- I use some terms in this file that I have not seen used before to
- describe the line types or the sectors that they affect, so I will define
- them as I go. The first two that I'll introduce refer to the relationship of
- two sectors that share one or more linedefs.
- Such sectors are ADJACENT. All sectors are also adjacent to
- themselves, as they share linedefs (sidedefs even!) with themselves.
- Sectors A & B below are adjacent, as are C & D, E & F. Sector E can also
- be said to CONTAIN sector F. Sector F shares all of it's lindefs, but
- with only one sector (E). CONTAIN is a term that figures into the operation
- of line type #9 (a floor-affecting line type).
- ___________ ___________ ___________
- | | | | | |
- | | | D | | ___ E |
- ____| B | |____ | | | F | |
- | A | | | C | | | |___| |
- |____|___________| |____|______| |___________|
-
- In describing the floor effects, dmspec13 used the term "neighbor" ("ne.").
- This term was also echoed by the authors of the various editors. The problem
- with this term is that it implies that a neighbor to sector #X can not be
- sector #X itself. When the DOOM engine looks for the Lowest Adjacent Ceiling
- to raise a floor up to, it may find that the LAC is the ceiling belonging
- to the same sector as the rising floor. If it stops 8 below the LAC in this
- instance, it will be 8 below it's own ceiling. If we can adopt these or
- similar terms, then describing effects of certain linetypes will be easier.
-
- ----------------
-
- Following are the terms used in the descriptions of line types:
-
- DEC#
- **** Decimal number of the line type.
-
- ACT.
- **** Activated by. This indicates what will activate the effect.
- S 1 - Switch activated. Not repeatable.
- S R - Switch - repeatable after sector is reset.
- S X - Switch - repeatable without requiring sector reset.
- (use of this linetype is not recommended)
- W 1 - Walking across line activates. Not repeatable.
- W R - Walking - repeatable after sector reset.
- W X - Walking - repeatable without requiring resetting.
- (use of this linetype is not recommended)
- G 1 - Gun activated. (Shoot at or through line to activate)
-
- EFFECT
- ****** What happens to the involved sector when triggered by the linedef.
-
- EFFECT Terms:
-
- HAC - Highest Adjacent Ceiling
- LAC - Lowest Adjacent Ceiling
- HAF _ Highest Adjacent Floor
- LAF - Lowest Adjacent Floor
- NAF - Numeric Adjacent Floor. This is the floor of the adjacent
- sector that shares the lowest numbered linedef of the tagged
- sector.
- NUMERIC CHANGE - defined before the section on floors
- TRIGGER CHANGE - defined before the section on floors
-
-
- DEC# ACT. EFFECT
- **** **** ******
- 0 - - Normal (used to indicate no special handling of linedef)
-
- -----------
-
- DOORS These are actually ceiling effects, as doors are just ceilings
- that are raised and lowered to allow access to the sectors
- lying beyond them. I'm grouping them separately since designers
- put "doors" in wads, not "ceilings with specific behaviors".
-
-
- LOCAL DOORS - sectors bound to 2nd sidedef of activating linedef.
- (activated at door surface)
-
- DEC# ACT. EFFECT
- **** **** ******
- 1 S R Open door. Closes in 6 secs
- 26 S R Open door. Closes in 6 secs. Blue key
- 27 S R Open door. Closes in 6 secs. Yellow key
- 28 S R Open door. Closes in 6 secs. Red key
- 31 S 1 Open door. Stays open
- 46 G 1 Open door. Stays open
- 32 S 1 Open door. Stays open Blue key
- 33 S 1 Open door. Stays open Yellow key
- 34 S 1 Open door. Stays open Red key
-
-
- REMOTE DOORS - sectors tagged by activating linedef.
- (remotely activated at wall switches, walk-over lines)
-
- (* indicates not in dmspec13 and unavailable in editor menus at this time.)
-
- DEC# ACT. EFFECT
- **** **** ******
- 103 S 1 Open door. Stays open
- 61 S R Open door. Stays open
- 2 W 1 Open door. Stays open
- 86 W R Open door. Stays open
- 29 S 1 Open door. Closes in 6 seconds
- 63 S R Open door. Closes in 6 seconds
- * 4 W 1 Open door Closes in 6 seconds
- 90 W R Open door. Closes in 6 seconds
- * 50 S 1 Close door
- 42 S R Close door
- 3 W 1 Close door
- 75 W R Close door
- 16 W 1 Close door for 30 seconds
- 76 W R Close door for 30 seconds
-
- ----------------------
-
- CEILINGS
-
- DEC# ACT. EFFECT
- **** **** ******
- 40 W 1 Raise to HAC
-
- 41 S 1 Lower to own floor
- * 43 S R Lower to own floor
- * 49 S 1 Lower to 8 above own floor.
- 44 W 1 Lower to 8 above own floor
- * 72 W R Lower to 8 above own floor
-
- * 25 W 1 Start fast crushing ceiling. Fast crush. Slow damage
- * 6 W 1 Start fast crushing ceiling. Fast crush. Fast damage
- 77 W R Start fast crushing ceiling. Fast crush. Slow damage
- 73 W R Start slow crushing ceiling. Slow crush. Fast damage
- * 57 W 1 Stop crushing ceiling
- 74 W R Stop crushing ceiling
-
- ------------------
-
- FLOORS
-
- Floor-affecting types trigger effects best described as RAISE, LOWER, GOTO.
- There are also types affecting MOVING FLOORS, LIFTS, and STAIRS, but I'm
- treating these as separate cases since most designers view these as complete
- entities - much the same as doors are considered separate from ceilings,
- even though door actions are actually ceiling actions.
-
- RAISE types will move the floor up, either until a given numerical distance
- has been traveled, or until it reaches a position relative to an adjacent
- floor or ceiling. RAISE types should not be used if the relative position
- is, or can be relocated to, BELOW the floor before triggering.
-
- LOWER types will move the floor only to positions relative to an adjacent
- floor or ceiling. LOWER types should not be used if the relative position
- is, or can be relocated to, ABOVE the floor before triggering.
-
- The GOTO type is a term not used before. GOTO raises OR lowers the floor to
- a given height or location. Many of the earlier descriptions referred to
- RAISE or LOWER types only, because the floors that were studied to find the
- resulting actions were set below or above the GOTO destination already.
- GOTO types are useful when multiple sectors are tagged together, each having
- a different height. Each will move in whatever direction is required to
- end up at the same height.
-
- SPECIAL NOTE
- ************
-
- Some floor types also cause the tagged sector to change floor texture and
- "damage" trait to that of a 2nd sector (MODEL sector, for lack of a better
- term). There are 2 different models involved in the changes. A TRIGGER model
- is the sector that is bound to the first sidedef of the triggering linedef.
- A NUMERIC model is the adjacent sector sharing the LOWEST NUMBERED LINEDEF
- comprising the tagged sector. These are referred to in the EFFECTS column
- below as either TRIGGER CHANGE or NUMERIC CHANGE. In either case, the tagged
- sector takes on the floor texture of the model sector. In the case of the
- NUMERIC CHANGE a second trait is also passed to the tagged sector - the
- ability to do health damage. This was previously considered to be a passing
- of the SECTOR TYPE from the model to the tagged sector, but that is not the
- case. The sector type also describes light characteristics, but these are
- not passed to the tagged sector. A TRIGGER CHANGE also appears to "lock-out"
- any further changes to a sector by any linedef tagged to it.
-
- I refer to the floor of a Numeric model as an NAF - Numeric Adjacent Floor.
- Dmspec13 referred to the change as "matching", but it also used that term to
- describe a RAISE or LOWER destination height. I will try to avoid the term,
- as its meaning has already been muddied.
-
- One notable line type involving floors:
-
- Line type #9 is recognizable as the switch to activate the chainsaw pillar
- in E1M2. The tagged sector (pillar) moves in GOTO mode to its NAF (Numeric
- Adjacent Floor) comprised of the acid pool surrounding it. (If the acid
- pool is the tagged sector and the pillar shares its lowest numbered linedef,
- the pool will GOTO the level of the pillar. You can turn off clipping and
- climb up to it and still be harmed by the acid.) But in this case, the pillar
- is tagged, so it moves to the floor level of the acid pool sector. Note
- that the pillar is CONTAINED by its NAF sector, as all of its linedefs are
- shared by the acid pool. Because of this, a second condition sets in -
- the acid pool "GOesTO" >its< NAF and undergoes a NUMERIC CHANGE, assuming
- the same floor texture and damage trait (no longer damaging to health).
- The acid pool is contained by its own NAF in this case, but that is not
- required for the second step to occur. The pool would move to its NAF even
- if stuck in a corner, as long as the lowest numbered linedef bounding the
- acid pool is a TWO-SIDED LINEDEF. The primary NAF sector (the acid pool)
- does NOT consider the tagged sector (the pillar) to contain its NAF. It
- looks elsewhere, EVEN IF its lowest numbered linedef is shared with the
- tagged sector. The acid pool finds its NAF among its other shared linedefs.
-
- There is a bug I found. If the acid pool's lowest numbered linedef is a
- ONE-SIDED linedef, the pillar and acid pool floors both GOTO a height of 34,
- and the acid pool turns from NUKAGEn to TLITE6_6 - the last one on the list.
- (Probably from a function returning a pointer to it after being passed junk.)
- Since ID doesn't make this mistake, you would do well to emulate them.
-
- One last note on this line type - If the tagged sector's lowest numbered
- linedef is ONE-SIDED, it is considered to have no NAF, and nothing happens.
-
-
- FLOORS
-
- DEC# ACT. EFFECT
- **** **** ******
- 18 S 1 Raise to next-higher floor
- * 69 S X Raise to next-higher floor
- 5 W 1 Raise to next-higher floor
- 20 S 1 Raise to next-higher floor TRIGGER CHANGE
- * 68 S 1 Raise to next-higher floor TRIGGER CHANGE
- 22 W 1 Raise to next-higher floor TRIGGER CHANGE
- * 95 W 1 Raise to next-higher floor TRIGGER CHANGE
- * 47 G 1 Raise to next-higher floor TRIGGER CHANGE
- * 101 S 1 Raise to LAC
- * 64 S R Raise to LAC
- * 24 G 1 Raise to LAC
- * 55 S 1 Raise to 8 below LAC CRUSH
- * 65 S R Raise to 8 below LAC CRUSH
- * 94 W 1 Raise to 8 below LAC CRUSH
- 56 W 1 Raise to 8 below LAC CRUSH
- 58 W 1 Raise 24
- * 92 W X Raise 24
- * 15 S 1 Raise 24 TRIGGER CHANGE
- * 66 S X Raise 24 TRIGGER CHANGE
- 59 W 1 Raise 24 TRIGGER CHANGE
- * 93 W X Raise 24 TRIGGER CHANGE
- 14 S 1 Raise 32 TRIGGER CHANGE
- * 67 S X Raise 32 TRIGGER CHANGE
- 30 W 1 Raise 128
- * 96 W X Raise 128
-
- 23 S 1 Lower to LAF
- * 60 S R Lower to LAF
- 38 W 1 Lower to LAF
- 82 W R Lower to LAF
- 37 W 1 Lower to LAF NUMERIC CHANGE
- * 84 W R Lower to LAF NUMERIC CHANGE
-
- 91 W R Goto LAC
- 102 S 1 Goto HAF
- * 45 S R Goto HAF
- 19 W 1 Goto HAF
- * 83 W R Goto HAF
- * 71 S 1 Goto 8 above HAF
- 70 S R Goto 8 above HAF
- 36 W 1 Goto 8 above HAF
- 98 W R Goto 8 above HAF
-
- This next one is a bit involved. Explained further above.
- Example: switch activating pillar with chainsaw in E1M2.
-
- 9 S 1 {
- Goto NAF1;
- IF (contained by NAF1) {
- NAF1 Goto its own NAF2 and undergo NUMERIC CHANGE;
- }
- }
-
-
-
- FLOORS USED AS LIFTS
-
- DEC# ACT. EFFECT
- **** **** ******
- 21 S 1 Lower quickly for 3 seconds, then return
- 62 S R Lower quickly for 3 seconds, then return
- 10 W 1 Lower quickly for 3 seconds, then return
- 88 W R Lower quickly for 3 seconds, then return
-
-
- MOVING FLOORS
-
- DEC# ACT. EFFECT
- **** **** ******
- * 53 W 1 Start moving floor
- 87 W R Start moving floor
- * 54 W 1 Stop moving floor
- 89 W R Stop moving floor
-
- ------------------------------------------
-
- From here on down, with the exception of those types marked with
- an asterisk (*) and those as yet undefined, I didn't experiment
- with these line types. Most of the descriptions are unchanged from
- how they appear in dmspec13.
-
-
- STAIRS
-
- DEC# ACT. EFFECT
- **** **** ******
- 7 S 1 Staircase rises up from floor in appropriate sectors.
- 8 W 1 Stairs
-
-
- END LEVEL
-
- DEC# ACT. EFFECT
- **** **** ******
- 11 S - End level. Go to next level.
- 51 S - End level. Go to secret level 9.
- 52 W - End level. Go to next level
-
-
- TELEPORT
-
- DEC# ACT. EFFECT
- **** **** ******
- 39 W 1 Teleport to sector. (Only ONE sector per tag #)
- 97 W R Teleport to sector. (Only ONE sector per tag #)
-
-
- LIGHT LEVELS
-
- DEC# ACT. EFFECT
- **** **** ******
- 13 W 1 Brightness goes to 255
- * 17 W 1 Change light to blink - 1 sec.
- 104 W 1 Light drops to lowest light level amongst neighbor sectors
- 35 W 1 Light drops to 0.
- * 79 W R Light drops to 0.
- 80 W R Brightness to maximum neighbor light level
-
-
- MISCELLANEOUS
-
- DEC# ACT. EFFECT
- **** **** ******
- 48 - - Animated, horizontally scrolling wall texture (right to left)
- (This is an non-triggered condition affecting only how the
- wall texture is painted onto the sidedef.)
-
-
- STILL UNKNOWN AT THIS TIME
-
- 12 - affects light level
- 78
- 81
- 83
- 84
- 85
- 99
- 100
-